A Compilation Target for Probabilistic Programming Languages
نویسندگان
چکیده
Forward inference techniques such as sequential Monte Carlo and particle Markov chain Monte Carlo for probabilistic programming can be implemented in any programming language by creative use of standardized operating system functionality including processes, forking, mutexes, and shared memory. Exploiting this we have defined, developed, and tested a probabilistic programming language intermediate representation language we call probabilistic C, which itself can be compiled to machine code by standard compilers and linked to operating system libraries yielding an efficient, scalable, portable probabilistic programming compilation target. This opens up a new hardware and systems research path for optimizing probabilistic programming systems.
منابع مشابه
Compiling Probabilistic Logic Programs into Sentential Decision Diagrams
Knowledge compilation algorithms transform a probabilistic logic program into a circuit representation that permits efficient probability computation. Knowledge compilation underlies algorithms for exact probabilistic inference and parameter learning in several languages, including ProbLog, PRISM, and LPADs. Developing such algorithms involves a choice, of which circuit language to target, and ...
متن کاملTranslation of Conditional Compilation
This paper describes how to translate the compiler directives for conditional compilation in automated source-to-source translation between high-level programming languages. The directives for conditional compilation of the source language are translated into the corresponding directives of the target language, and the source program text of each branch of conditional compilation is translated ...
متن کاملA Formal Introduction to the Compilation of Java
The term abstract machine is widely accepted to denote intermediate target languages and related architectures which serve as an intermediate stage to compile programming languages. In this paper we explain how a considerable subset of Java is translated into Byte-Code for the Java Virtual Machine, an abstract machine used as a target for Java compilation. Using formal and precise notation we p...
متن کاملTranslation of Conditional Compilat Translation of Conditional Compilation Translation of Conditional Compilation
This paper describes how to translate the compiler directives for conditional compilation in automated source-to-source translation between high-level programming languages. The directives for conditional compilation of the source language are translated into the corresponding directives of the target language, and the source program text of each branch of conditional compilation is translated ...
متن کاملIncrementalizing MCMC in Probabilistic Programs Through Tracing and Slicing
Probabilistic programming enables high-level specification of complex probabilistic models without the need for hand-built inference techniques. We present a dynamic compilation technique for increasing the efficiency of Markov Chain Monte Carlo (MCMC) inference on probabilistic programs. We focus on Church, a probabilistic extension of untyped call-by-value lambda calculus. MCMC in this settin...
متن کامل